#ifndef SAME_NAME_TASK_CHAIN_EXCLUDE_POLICY_H
#define SAME_NAME_TASK_CHAIN_EXCLUDE_POLICY_H

#include "exclude_policy.h"
#include "task/task_controller.h"
#include "global.h"

namespace exclude
{
class SameNameTaskChainExcludePolicyData;
/**
 * @brief:  同名任务链互斥策略
 * @author: sherlock_lht
 */
class SameNameTaskChainExcludePolicy: public ExcludePolicy
{
public:
    explicit SameNameTaskChainExcludePolicy(task::TaskController *task_controller);
    ~SameNameTaskChainExcludePolicy();

    bool execPolicy(task::TaskChain *task_chain) override;

private:
    DECLARE_DATA(SameNameTaskChainExcludePolicy)
};

}

#endif //SAME_NAME_TASK_CHAIN_EXCLUDE_POLICY_H
